package com.tj.bo.account.client;

import com.tj.bo.account.client.vo.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * 提现服务
 * User: anonymous
 * Date: 2020/06/11
 * Time: 下午2:16
 */
public interface WithdrawService {

    /**
     * 获取银行名称
     */
    String getBankName(String ifscCode);


    void updateWithdrawStatusByWithdrawNo(String withdrawNo, int status);

    /**
     * 绑定提现账号
     */
    void bindWithDrawAccount(WithDrawAccountVO withDrawAccountVO);

    /**
     * 查询提现账号
     */
    WithDrawAccountVO queryWithDrawAccount(String userCode);


    WithdrawRecordVO getWithdrawRecordByWithdrawNo(String withdrawNo);

    /**
     * 提现
     */
    void withDraw(WithDrawVO withDrawVO);

    /**
     * 自动审核
     */
    String withDrawAutoAuditCheck(WithDrawVO withDrawVO);

    /**
     * 审核回调
     */
    void withDrawAuditNotify(WithDrawAuditCallbackVO withDrawAuditCallbackVO);

    /**
     * 打款通知
     */
    void withDrawPayoutNotify(WithDrawPayoutNotifyVO withDrawPayoutNotifyVO);

    /**
     * 获取提现记录
     */
    List<WithdrawRecordVO> getWithdrawRecordList(String userCode);

    /**
     * 获取提现进度
     */
    WithdrawRecordVO queryWithDrawProgress(String userCode);

    /**
     * 根据userCode获取总充值金额
     * @param userCode
     * @return
     */
    BigDecimal selectTotalDepositAmount(String userCode);
}
